package one.stand.util;

import org.apache.commons.lang3.StringUtils;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Objects;

/**
 * Created by chengjiarui on 2019-06-25.
 */
public class MoneyUtil {

    private final static String MONEY_TYPE = "¥ ";
    private final static String HUNDRED = "100";
    private final static BigDecimal MONEY_HUNDRED = new BigDecimal("100");

    public static String getMoneyStr(BigDecimal money) {
        return MONEY_TYPE + money;
    }

    public static Integer getMoneyInt(BigDecimal money) {
        return money.multiply(MONEY_HUNDRED).intValue();
    }

    /**
     * 价格转换 元
     */
    public static BigDecimal getMoney(Integer money) {
        if (money == null) {
            return BigDecimal.ZERO;
        }

        BigDecimal a = new BigDecimal(money);
        return a.divide(MONEY_HUNDRED, 2, RoundingMode.HALF_UP);
    }

    /**
     * 金额除100 并保留两位小数
     */
    public static String getWithUnit(String money) {
        return getMoneyString(money) + "元";
    }

    /**
     * 金额除100 并保留两位小数
     */
    public static String getWithUnit(Integer money) {
        return getMoneyString(money) + "元";
    }

    public static String getMoneyString(Integer money) {
        return getMoneyString(Objects.nonNull(money) ? String.valueOf(money) : null);
    }

    public static String getMoneyString(Long money) {
        return getMoneyString(Objects.nonNull(money) ? String.valueOf(money) : null);
    }

    /**
     * 金额除100 并保留两位小数
     */
    public static String getMoneyString(String money) {
        if (StringUtils.isBlank(money) || Integer.parseInt(money) <= 0) {
            return "0";
        }
        BigDecimal a = new BigDecimal(money);
        return a.divide(MONEY_HUNDRED, 2, RoundingMode.HALF_UP).toString();
    }
}
